package com.dotnet.common.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {
	
	/**
	 * 
	 * 描述：md5 加密方法
	 * 参数一：需要加密的密码
	 * 参数二：加密因子
	 * 创建人： 魏泽超
	 * 创建时间: 2016-5-27 上午9:46:41
	 * @version
	 */
	public static String getMd5(byte[] buffer, byte[] salt) throws NoSuchAlgorithmException {
		String s = null;
		char hexDigist[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(buffer);
		md.update(salt);
		byte[] datas = md.digest(); // 16个字节的长整数
		char[] str = new char[2 * 16];
		int k = 0;
		for (int i = 0; i < 16; i++) {
			byte b = datas[i];
			str[k++] = hexDigist[b >>> 4 & 0xf];// 高4位
			str[k++] = hexDigist[b & 0xf];// 低4位
		}
		s = new String(str);
		return s;
	}

	public static void main(String[] args) throws NoSuchAlgorithmException {
		byte[] b = "123456".getBytes();
		byte[] c = "espxSj".getBytes();
		System.out.println(getMd5(b, c));
	}

}
